﻿// 功能：控件、窗口等UI元素的接口
// 描述：
// 作者：温伟鹏
// 日期：2010/5/24 22:30:03

using System;
using System.Drawing;

namespace MeizuSDK.Presentation
{
    /// <summary>
    /// 控件、窗口等UI元素的接口
    /// </summary>
    public interface IUIElement : IDisposable
    {
        /// <summary>
        /// 获取UI元素的实例指针
        /// </summary>
        IntPtr Handle { get; }
        /// <summary>
        /// 获取一个值，该值指示此UI元素是否有与它关联的实例指针。
        /// </summary>
        bool IsHandleCreated { get; }
        /// <summary>
        /// 获取控件集合
        /// </summary>
        ControlCollection Controls { get; }
        /// <summary>
        /// 获取或设置UI元素的大小
        /// </summary>
        Size Size { get; set; }
        /// <summary>
        /// 获取或设置UI元素的高度
        /// </summary>
        int Height { get; set; }
        /// <summary>
        /// 获取或设置UI元素的宽度
        /// </summary>
        int Width { get; set; }
        /// <summary>
        /// 获取UI元素客户区域所在矩形
        /// </summary>
        Rectangle ClientRectangle { get; }
        /// <summary>
        /// 获取UI元素的客户区域大小
        /// </summary>
        Size ClientSize { get; }
        /// <summary>
        /// 获取或设置UI元素显示的文本
        /// </summary>
        string Text { get; set; }
        /// <summary>
        /// 更新UI元素
        /// </summary>
        void Update();
        /// <summary>
        /// 使UI元素无效
        /// </summary>
        void Invalidate();
        /// <summary>
        /// 使UI元素的指定区域无效
        /// </summary>
        /// <param name="rectUpdate"></param>
        void Invalidate(Rectangle rectUpdate);
    }
}
